import request from "@/utils/request";

const NORM_BASE_URL = "/business/norm";

const NormAPI = {
  /**
   * 获取定额分页列表
   *
   * @param queryParams 查询参数
   */
  getPage(queryParams: NormPageQuery) {
    return request<any, PageResult<NormPageVO[]>>({
      url: `${NORM_BASE_URL}/loadPage`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 获取定额表单详情
   *
   * @param normId 定额ID
   * @returns 定额表单详情
   */
  getFormData(normId: string) {
    return request<any, NormPageVO>({
      url: `${NORM_BASE_URL}/load/${normId}`,
      method: "get",
    });
  },

  /**
   * 添加定额
   *
   * @param data 定额表单数据
   */
  create(data: NormForm) {
    return request({
      url: `${NORM_BASE_URL}/add`,
      method: "post",
      data,
    });
  },

  /**
   * 修改定额
   *
   * @param id 定额ID
   * @param data 定额表单数据
   */
  update(data: NormForm) {
    return request({
      url: `${NORM_BASE_URL}/update`,
      method: "post",
      data,
    });
  },

  /**
   * 批量删除定额，多个以英文逗号(,)分割
   *
   * @param ids 定额ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${NORM_BASE_URL}/batchDelete?ids=${ids}`,
      method: "get",
    });
  },

  deleteById(id: string) {
    return request({
      url: `${NORM_BASE_URL}/delete/${id}`,
      method: "get",
    });
  },

  /**
   *  获取定额下拉列表
   */
  getOptions() {
    return request<any, OptionType[]>({
      url: `${NORM_BASE_URL}/options`,
      method: "get",
    });
  },
  loadRengong() {
    return request<any, NormPageVO[]>({
      url: `${NORM_BASE_URL}/loadRenGong`,
      method: "get",
    });
  }
};

export default NormAPI;

/**
 * 定额分页查询对象
 */
export interface NormPageQuery extends PageQuery {
  /** 搜索关键字 */
  keywords?: string;

  categoryIds?: string;

  deepSearch?: boolean;
}

/** 定额分页对象 */
export interface NormPageVO {
  /** ID */
  id?: string;
  /** 定额分类id */
  categoryId?: string;
  /** 名称 */
  name?: string;
  /** 描述 */
  remark?: string;
  /** 价格 */
  price?: string;
  costPrice?:number;
  /** 单位 */
  unit?: string;
  categoryName?: string;
  code?: string;
}

/** 定额表单类型 */
export interface NormForm {
  /** ID */
  id?: string;
  /** 定额分类id */
  categoryId?: string;
  /** 名称 */
  name?: string;
  /** 描述 */
  remark?: string;
  /** 价格 */
  price?: number;
  costPrice?:number;
  /** 单位 */
  unit?: string;
  code?: string;
}
